package payment.mobilepos.unionpay.com.metroguide.api;


import java.util.List;

import io.reactivex.Observable;
import payment.mobilepos.unionpay.com.metroguide.bean.QueryFare;
import payment.mobilepos.unionpay.com.metroguide.bean.QueryPath;
import payment.mobilepos.unionpay.com.metroguide.ui.Stations;
import retrofit2.http.GET;
import retrofit2.http.Query;

/**
 * des:ApiService
 * Created by xsf
 * on 2016.06.15:47
 */
public interface ApiService {
    /**
     * @param act 行为
     * @return
     */
    @GET(ApiConstants.GET_ALL_STATIONS)
    Observable<List<Stations>> getAllStations(@Query("act") String act);

    /**
     * @param startStationKey 起点站
     * @param endStationsKey  终点站
     * @param type            票种
     * @return
     */
    @GET(ApiConstants.QUERYFARE)
    Observable<QueryFare> queryFare(@Query("o") String startStationKey, @Query("d") String endStationsKey, @Query("t") String type);

    /**
     * @param startStationKey 起点站
     * @param endStationsKey  终点站
     * @param type            票种
     * @return
     */
    @GET(ApiConstants.QUREYPATH)
    Observable<QueryPath> queryPath(@Query("o") String startStationKey, @Query("d") String endStationsKey, @Query("t") String type);

//    @GET("nc/article/{postId}/full.html")
//    Observable<Map<String, NewsDetail>> getNewDetail(
//            @Header("Cache-Control") String cacheControl,
//            @Path("postId") String postId);
//
//    @GET("nc/article/{type}/{id}/{startPage}-20.html")
//    Observable<Map<String, List<NewsSummary>>> getNewsList(
//            @Header("Cache-Control") String cacheControl,
//            @Path("type") String type, @Path("id") String id,
//            @Path("startPage") int startPage);
//
//    @GET
//    Observable<ResponseBody> getNewsBodyHtmlPhoto(
//            @Header("Cache-Control") String cacheControl,
//            @Url String photoPath);
//    //@Url，它允许我们直接传入一个请求的URL。这样以来我们可以将上一个请求的获得的url直接传入进来，baseUrl将被无视
//    // baseUrl 需要符合标准，为空、""、或不合法将会报错
//
//    @GET("data/福利/{size}/{page}")
//    Observable<GirlData> getPhotoList(
//            @Header("Cache-Control") String cacheControl,
//            @Path("size") int size,
//            @Path("page") int page);
//
//    @GET("nc/video/list/{type}/n/{startPage}-10.html")
//    Observable<Map<String, List<VideoData>>> getVideoList(
//            @Header("Cache-Control") String cacheControl,
//            @Path("type") String type,
//            @Path("startPage") int startPage);
}
